<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //   function a() {}
      //   function b() {}

      /*
        继承的原理
        ①属性复制，②方法共享

        实例对象的原型指向类的原型
        类的原型（子类的原型.__proto__）指向继承父类的原型

        实例对象.__proto__->构造类的原型(prototype).__proto__->继承类的原型(prototype)
      */
      class A {
        // 属性字段，方法
        constructor() {
          this.money = 1000;
        }
        say() {
          console.log("hello");
        }
      }
      // B类 继承 A类 属性和方法
      class B extends A {}
      const b = new B();
      console.log(b);
      console.log(b.money); // undefined
      b.say();

      console.log(B.prototype.__proto__ === A.prototype);
      console.log(b.__proto__ === B.prototype);
      console.log(B.prototype.__proto__ === A.prototype);
    </script>
  </body>
</html>
